package com.mrjy.share.dao;

import com.mrjy.common.entity.DistributorInfo;
import com.mrjy.share.dto.DistributorInfoDTO;
import com.mrjy.share.dto.PromoterDTO;

import java.util.List;
import java.util.Map;

public interface IDistributorInfoDao {
    int deleteByPrimaryKey(Integer id);

    int insert(DistributorInfo record);

    int insertSelective(DistributorInfo record);

    DistributorInfo selectByPrimaryKey(Integer id);

    
    int updateByPrimaryKey(DistributorInfo record);

	int queryDistributorInfoCount(DistributorInfoDTO dto);

	List<DistributorInfoDTO> queryDistributorInfoPage(DistributorInfoDTO dto);

	int updateById(DistributorInfo info);
	
	DistributorInfoDTO queryById(Integer id);
	
	DistributorInfoDTO queryByUserId(Integer userId);
	
	List<DistributorInfoDTO> queryPageByDistributorType(DistributorInfoDTO dto);
	
	DistributorInfoDTO queryByDistributorTypeTotalNum(DistributorInfoDTO dto);
	
	int updatePostalStatus(DistributorInfo info);
	/**
	 * 通过用户id查询其是否为分销商
	 * @param userId
	 * @return
	 */
	List<DistributorInfo> isDistributorByUserId(Integer userId);
	
	DistributorInfoDTO queryTeamMemberByUserId(Integer userId);
	
	List<DistributorInfoDTO> queryByUserIdNoDisableFlag(Integer userId);
	
	DistributorInfoDTO queryNeedInfoByUserId(Integer userId);

	DistributorInfoDTO queryTeamMemberByUserIdAndCompleteTime(Map<String,Object> map);
	
	DistributorInfoDTO queryByIdNoDisableFlag(Integer userId);
	
	DistributorInfoDTO queryIsUpgradingByUserId(Integer userId);
	
	List<Integer> queryDistributorByRecommendCode(Map<String,Object> map);
	
	DistributorInfo queryInvalidPomotorByUserId(Integer userId);
	
	List<DistributorInfo> queryExpireDistributor();
	
	DistributorInfo queryNormalPromotorByUserId(Integer userId);
	
	List<DistributorInfoDTO> queryByMap(Map<String,Object> map);

	int updateDistributors(DistributorInfo info);

	int deleteDistributors(DistributorInfo info);

	List<PromoterDTO> queryDistributorInfoPage2(DistributorInfoDTO dto);
	
	int queryCountByDistributorType(DistributorInfoDTO dto);

	DistributorInfo queryValidPomotorByUserId(Integer userId);

    int deleteByIds(Map<String, Object> map);

}